#ifndef _EDITORREGION_
#define	_EDITORREGION_

#include "Utilities/StringHelper.hpp"
#include "Graphics/UI/Label.hpp"
#include "Objects/Region.hpp"
#include "Objects/DrawableRegion.hpp"

/**
 * Editor's implementation of a Region.
 */
class EditorRegion:public Region, public DrawableRegion{
public:
    /** Integer width for negative width when drawing. */
    int width;
    /** Integer height for negative height when drawing. */
    int height;

	/** The label that describes this region in the RegionPanel. */
	Label* regionLabel;

    EditorRegion();
    EditorRegion(int tx, int ty, unsigned short w, unsigned short h);
    
    virtual void setArea(int tx, int ty, unsigned short tw, unsigned short th);
	virtual void updateLabel();
	virtual void setScript(std::string s);
    virtual void draw(sf::RenderTarget& target, sf::RenderStates states) const;

    virtual void bind(lua_State* luaState);
    virtual void push(lua_State* luaState);

	~EditorRegion();
};


#endif

